}
else
{
+ gboolean allow_older = (upgrader_flags & OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_ALLOW_OLDER) > 0;
+
*out_changed = TRUE;
- if (from_revision)
+
+ if (from_revision && !allow_older)
{
if (!ostree_sysroot_upgrader_check_timestamps (repo, from_revision,
self->new_revision,
GSConsole *console;
gs_unref_object OstreeAsyncProgress *progress = NULL;
gboolean changed;
+ OstreeSysrootUpgraderPullFlags upgraderpullflags = 0;
context = g_option_context_new ("Construct new tree from current origin and deploy it, if it changed");
g_option_context_add_main_entries (context, options, NULL);
progress = ostree_async_progress_new_and_connect (ot_common_pull_progress, console);
}
- if (!ostree_sysroot_upgrader_pull (upgrader, 0, 0, progress, &changed,
+ if (opt_allow_downgrade)
+ upgraderpullflags |= OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_ALLOW_OLDER;
+
+ if (!ostree_sysroot_upgrader_pull (upgrader, 0, upgraderpullflags,
+ progress, &changed,
cancellable, error))
goto out;